home *** CD-ROM | disk | FTP | other *** search
/ Internet.Works 41 / Issue 41.iso / pc / PCSoftware / Netscape 6 Official Release / nim.xpi / bin / chrome / aim.jar / content / aim / findAFriendWizard.js < prev    next >
Encoding:
JavaScript  |  2000-09-13  |  13.3 KB  |  492 lines

  1. /*
  2.  * The contents of this file are subject to the Netscape Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/NPL/
  6.  *
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  *
  12.  * The Original Code is Mozilla Communicator client code, released
  13.  * March 31, 1998.
  14.  *
  15.  * The Initial Developer of the Original Code is Netscape
  16.  * Communications Corporation. Portions created by Netscape are
  17.  * Copyright (C) 1998-1999 Netscape Communications Corporation. All
  18.  * Rights Reserved.
  19.  *
  20.  * Contributor(s):
  21.  *   Ben Goodger (30/09/99)
  22.  */ 
  23.  
  24. // The WIZARD of GORE
  25.  
  26. //var profile = Components.classes["@mozilla.org/profile/manager;1"].createInstance();
  27. //profile = profile.QueryInterface(Components.interfaces.nsIProfile); 
  28.  
  29. // Navigation Set for pages contained in wizard 
  30. var wizardMap = {
  31.   findAFriend1_0: { previous: null,              next: "findAFriend1_1",    finish: false },
  32.  
  33.   findAFriend1_1: { previous: null,   next: "findAFriend1_1_0",   finish: false },
  34.   findAFriend1_1_0: { previous: "findAFriend1_1",              next: null,    finish: false },
  35.   findAFriend1_1_1: { previous: "findAFriend1_1",              next: null,    finish: true },
  36.   findAFriend1_1_3: { previous: "findAFriend1_1",              next: null,    finish: true },
  37.   findAFriend1_2: { previous: "findAFriend1_1",              next: null,    finish: true },
  38.  
  39.   findAFriend2_1: { previous: "findAFriend1_0", next:"findAFriend2_2", finish: false },
  40.   findAFriend2_2: { previous: "findAFriend2_1", next:null, finish: false },
  41.   findAFriend2_2_1: { previous: "findAFriend2_1", next:null, finish: true },
  42.   findAFriend2_2_2: { previous: "findAFriend2_1", next:null, finish: true },
  43.   findAFriend2_2_3: { previous: "findAFriend2_1", next:null, finish: true },
  44.   
  45.   findAFriend3_1: { previous: "findAFriend1_0", next:"findAFriend3_1_0", finish: false },
  46.   findAFriend3_1_0: { previous: "findAFriend3_1", next:null, finish: false },
  47.   findAFriend3_1_1: { previous: "findAFriend3_1", next:null, finish: true },
  48.   findAFriend3_1_2: { previous: "findAFriend3_1", next:null, finish: true },
  49.  
  50. }
  51.  
  52. // page specific variables
  53. var profName      = "";
  54. var profDir       = "";
  55. var wizardManager = null;
  56.  
  57. // startup procedure
  58. function Startup( startPage, frame_id )
  59. {
  60.   if( frame_id == "" ) {
  61.     dump("Please supply a content_frame ID!");
  62.     return false;
  63.   }
  64.   
  65.   // instantiate the Wizard Manager
  66.   wizardManager                   = new WizardManager( frame_id, null, null, wizardMap );
  67.   wizardManager.URL_PagePrefix    = "chrome://aim/content/";
  68.   wizardManager.URL_PagePostfix   = ".xul";
  69.  
  70.   // set the button handler functions
  71.   wizardManager.SetHandlers( null, null, onFinish, onCancel, null, null );
  72.   // load the start page
  73.   dump("calling loadpage...\n");
  74.   dump("startPage:: " + startPage + "\n");
  75.     wizardManager.LoadPage( startPage, false );
  76. }
  77.  
  78. function onCancel()
  79. {
  80.   
  81.     window.close();
  82.  }
  83.  
  84. function onFinish()
  85. {
  86.   // check if we're at final stage 
  87.   if( !wizardManager.wizardMap[wizardManager.currentPageTag].finish )
  88.     return;
  89.  
  90.    window.close();
  91.  
  92. }
  93.  
  94.  
  95.  
  96. /** void ExitApp( void ) ;
  97.  *  - purpose: quits the application properly and finally, stops event loop
  98.  *  - in:  nothing
  99.  *  - out: nothing
  100.  **/               
  101. function ExitApp()
  102. {
  103.   // Need to call this to stop the event loop
  104.   var appShell = Components.classes['@mozilla.org/appshell/appShellService;1'].getService();
  105.   appShell = appShell.QueryInterface( Components.interfaces.nsIAppShellService);
  106.   appShell.Quit();
  107. }
  108.  
  109.  
  110. /* new callback */
  111. var Callback = new Object();
  112. var containerArray = new Array();
  113. var numHits = null;
  114. var queryEmailAddress = null;
  115.  
  116. Callback.OnRequestScreenNamesComplete = function(email,numScreenNames,pScreenNames) 
  117. {
  118.     //dump("Callback.OnRequestScreenNamesComplete called with email " + email + "\n");
  119.     //dump("numScreenNames is " + numScreenNames + "\n");
  120.  
  121.     //dump("pScreenNames is " + pScreenNames + "\n"); 
  122.     
  123.     //numHits = document.createTextNode(numScreenNames);
  124.     
  125.     numHits = numScreenNames;
  126.     
  127.     queryEmailAddress = parent.wizardManager.WSM.PageData.findAFriend1_1.emailaddr.value;
  128.         
  129.     for(i=0;i<numScreenNames;i++){
  130.         dump("found screenName:"+pScreenNames[i]+"\n");
  131.         
  132.         //new stuff
  133.         containerArray[i]=pScreenNames[i];
  134.     
  135.     }
  136.     
  137.     dump("done with searching? \n");
  138.     
  139.     // myLocateCallbacks and locateManager instantiation
  140.     /* commented out for now
  141.     var IMServiceClass = Components.classes['@netscape.com/aim/IMManager;1'];    
  142.     var pIIMManager  = IMServiceClass.getService(Components.interfaces.nsIIMManager);
  143.     
  144.     if (!pIIMManager)
  145.     {
  146.         dump ("cmdFindBuddy:unable to get pIIMManager\n");
  147.         return;
  148.     }    
  149.     
  150.     
  151.     
  152.     
  153.     var pILocateManager = null;
  154.             
  155.     pILocateManager = pIIMManager.QueryInterface(Components.interfaces.nsIAimLocateManager);
  156.     
  157.     if (!pILocateManager)
  158.     {
  159.         dump("cmdFindBuddy:unable to get pILocateManager\n");
  160.         return;
  161.     }
  162.  
  163.     dump("building myLocateCallback object\n");    
  164.     var myLocateCallback = new Object();
  165.  
  166.     myLocateCallback.OnRequestDirectoryInfoEntryComplete = function(screenName,entry) 
  167.         {
  168.             dump("myLocateCallback.OnRequestDirectoryInfoEntryComplete " + screenName + "\n");
  169.         
  170.             dump("FirstName is " + entry.FirstName + " ");
  171.             dump("LastName is " + entry.LastName + " ");
  172.             dump("ScreenName is " + entry.ScreenName + " ");
  173.             dump("City is " + entry.City + " ");
  174.             dump("Country is " + entry.Country + " ");
  175.             dump("Zipcode is " + entry.Zipcode + " ");
  176.             dump("State is " + entry.State + " ");
  177.             dump("Maiden name is " + entry.MaidenName + "\n");
  178.         }
  179.  
  180.     myLocateCallback.OnRequestDirectoryInfoEntryError = function(screenName, msg)
  181.         {
  182.         
  183.             dump("myLocateCallback.OnRequestDirectoryInfoEntryCompleteError " + screenName + "\n");
  184.         }
  185.  
  186.     
  187.     
  188.     for(j=0;j<numScreenNames; j++){
  189.         dump("looking up info on:"+ pScreenNames[j]+"\n");
  190.         //pILocateManager.RequestDirectoryInfoKeywords(LocateCallback,pScreenNames[j]);
  191.         pILocateManager.RequestDirectoryInfoEntry(myLocateCallback,pScreenNames[j]);
  192.  
  193.     }
  194.     */
  195.     
  196.     parent.wizardManager.LoadPage('findAFriend1_2',false);
  197. }
  198.  
  199. Callback.OnRequestScreenNamesError = function(email,pErrMsg) 
  200. {
  201.     dump("Callback.OnRequestScreenNamesError called with email " + email + "\n");
  202.  
  203.     dump("pErrMsg is " + pErrMsg + "\n"); 
  204.     
  205.     parent.wizardManager.LoadPage('findAFriend1_1_1',false);
  206. }
  207.  
  208.  
  209.  
  210.  
  211. /*
  212.  * Function: cmdFindBuddy()
  213.  *
  214.  * Arguments: None
  215.  * 
  216.  * Return: None
  217.  *
  218.  * Description: Called in response to menu item of toolbar button in standalone
  219.  *        for finding  a buddy. Opens FindBuddy.xul to place a 
  220.  *        wizard  that can be used to find a buddy.
  221.  *
  222.  * 
  223. */
  224.  
  225. function cmdFindBuddy()
  226. {
  227.     dump("Entered cmdFindBuddy\n");
  228.  
  229.     var IMServiceClass = Components.classes['@netscape.com/aim/IMManager;1'];    
  230.     var pIIMManager  = IMServiceClass.getService(Components.interfaces.nsIIMManager);
  231.     
  232.     if (!pIIMManager)
  233.     {
  234.         dump ("cmdFindBuddy:unable to get pIIMManager\n");
  235.         return;
  236.     }
  237.  
  238.     dump("done testing feedbag manager\n");
  239.  
  240.  
  241. /* USERLOOKUPMANAGER */
  242.     var pIUserLookupManager = aimUserLookupManager();
  243.  
  244.         
  245.     if (!pIUserLookupManager)
  246.     {
  247.         dump("cmdFindBuddy:unable to get pIUserLookupManager\n");
  248.         return;
  249.     }
  250.  
  251.  
  252.     dump("cmdFindBuddy: calling RequestScreenNames\n");
  253.  
  254.      var theEmailAddress=parent.wizardManager.WSM.PageData.findAFriend1_1.emailaddr.value
  255.      //alert(theEmailAddress)
  256.     pIUserLookupManager.RequestScreenNames(Callback,theEmailAddress);
  257.     
  258.     
  259.     dump("done testing userlookupmanager now locatemanager\n");
  260.  
  261. /* LOCATEMANAGER */
  262.     var pILocateManager = aimLocateManager();
  263.             
  264.     if (!pILocateManager)
  265.     {
  266.         dump("cmdFindBuddy:unable to get pILocateManager\n");
  267.         return;
  268.     }
  269.  
  270.     dump("building LocateCallback object\n");
  271.  
  272.     var LocateCallback = new Object();
  273.  
  274.     LocateCallback.OnRequestDirectoryInfoKeywordsComplete = function(screenname, count,keywords)
  275.     {
  276.         dump("OnRequestDirectoryInfoKeywordsComplete " + screenname + "\n");
  277.         dump ("The number of keywords is " + count + "\n");
  278.         for (var i = 0; i < count ; i++) {
  279.             dump(" " + keywords[i] + " ");
  280.         }
  281.         dump("\n");
  282.     }
  283.  
  284.     LocateCallback.OnRequestDirectoryInfoKeywordsError = function(screenName, msg)
  285.     {
  286.         dump("OnRequestDirectoryInfoKeywordsCompleteError " + screenName + "\n");
  287.     
  288.     }
  289.  
  290.  
  291.     LocateCallback.OnRequestDirectoryInfoEntryComplete = function(screenName,entry) 
  292.     {
  293.         dump("LocateCallback.OnRequestDirectoryInfoEntryComplete " + screenName + "\n");
  294.     
  295.         dump("FirstName is " + entry.FirstName + " ");
  296.         dump("LastName is " + entry.LastName + " ");
  297.         dump("ScreenName is " + entry.ScreenName + " ");
  298.         dump("City is " + entry.City + " ");
  299.         dump("Country is " + entry.Country + " ");
  300.         dump("Zipcode is " + entry.Zipcode + " ");
  301.         dump("State is " + entry.State + " ");
  302.         dump("Maiden name is " + entry.MaidenName + "\n");
  303.     }
  304.  
  305.     
  306.     dump("cmdFindBuddy: calling RequestDirectoryInfoEntry\n");
  307.  
  308.     //pILocateManager.RequestDirectoryInfoEntry(LocateCallback,"trip004");
  309.     //pILocateManager.RequestDirectoryInfoEntry(LocateCallback,"trip002");
  310.     
  311.  
  312.  
  313.     //dump("cmdFindBuddy: calling RequestDirectoryInfoKeywords\n");
  314.     //pILocateManager.RequestDirectoryInfoKeywords(LocateCallback,"trip004");
  315.     
  316.     
  317. /* ODIRMANAGER */
  318. /*
  319.     dump("testing now odirmanager\n");
  320.  
  321.  
  322.  
  323.     var pIOdirManager = aimOdirManager();
  324.             
  325.     dump("building OdirCallback object\n");
  326.  
  327.     var OdirCallback = new Object();
  328.  
  329.     OdirCallback.OnRequestKeywordListComplete = function(count,keywords)
  330.     {
  331.         dump("OnRequestKeywordListComplete\n");
  332.         for (var i = 0 ; i < count ; i++) {
  333.           for (var j = 0 ; j < keywords[i].keywords.length ; j++)
  334.             dump(" " + keywords[i].keywords[j] + " ");
  335.           dump("\n");
  336.         }    
  337.     }
  338.     OdirCallback.OnRequestKeywordListError = function(pErrMsg)
  339.     {
  340.         dump("OnRequestKeywordListError\n");
  341.     }
  342.     OdirCallback.OnSearchDirectoryError = function(pErrMsg)
  343.     {
  344.         dump("OnSearchDirectoryError\n");
  345.     }
  346.  
  347.     OdirCallback.OnSearchDirectoryComplete = function(count,entries) 
  348.     {
  349.           dump("OdirCallback.OnSearchDirectoryComplete called with count " + count + "\n");
  350.         for (var i = 0 ; i < count ; i++) 
  351.         {
  352.         dump("FirstName is " + entries[i].FirstName + " ");
  353.         dump("LastName is " + entries[i].LastName + " ");
  354.         dump("ScreenName is " + entries[i].ScreenName + " ");
  355.         dump("City is " + entries[i].City + " ");
  356.         dump("Country is " + entries[i].Country + " ");
  357.         dump("Zipcode is " + entries[i].Zipcode + " ");
  358.         dump("State is " + entries[i].State + " ");
  359.         dump("Maiden Name is " + entries[i].MaidenName + "\n");
  360.         }
  361.     }
  362.     
  363.     dump("cmdFindBuddy: calling Getallkeywords\n");
  364.     pIOdirManager.RequestKeywordList(OdirCallback); 
  365.  
  366.     dump("cmdFindBuddy: calling SearchDirectory\n");
  367.  
  368.     pIOdirManager.SearchDirectoryByEntry(OdirCallback, "vishy@netscape.com", "Viswanath", "Ramachandran");
  369.  
  370. */
  371.     dump("leaving cmdFindBuddy\n");
  372. }
  373.  
  374.  
  375.  
  376. function cmdFindBuddyViaEntry(){
  377.     dump("Entered cmdFindBuddyViaEntry\n");
  378.  
  379.     var pIOdirManager = aimOdirManager();
  380.             
  381.     if (!pIOdirManager)
  382.     {
  383.         dump("cmdFindBuddy:unable to get pIOdirManager\n");
  384.         return;
  385.     }
  386.  
  387.     dump("building OdirCallback object\n");
  388.  
  389.     var OdirCallback = new Object();
  390.  
  391.     OdirCallback.OnSearchDirectoryComplete = function (count, retOdirObj){
  392.         for(i=0;i<count;i++){
  393.             dump("ScreenName is:" +retOdirObj[i].ScreenName+"\n");    
  394.         
  395.         }
  396.     
  397.     }
  398.     OdirCallback.OnSearchDirectoryError = function(pErrMsg){
  399.         dump("OnSearchDirectoryByEntryGeneralError\n");
  400.     }
  401.     
  402.     testOdirObj={
  403.         FirstName: "Andrew",
  404.         Lastname: "Wooldridge",
  405.     }
  406.     dump("cmdFindBuddy: calling SearchByEntry\n");
  407.  
  408.     pIOdirManager.SearchDirectoryByEntryGeneral(OdirCallback, testOdirObj)
  409.  
  410. }
  411.  
  412.  
  413. function cmdFindBuddyViaKeyWords(){
  414.  
  415.     dump("Entered cmdFindBuddyViaEntry\n");
  416.  
  417.     var pIOdirManager = aimOdirManager();
  418.             
  419.     pIOdirManager = pIIMManager.QueryInterface(Components.interfaces.nsIAimOdirManager);
  420.     
  421.     if (!pIOdirManager)
  422.     {
  423.         dump("cmdFindBuddy:unable to get pIOdirManager\n");
  424.         return;
  425.     }
  426.  
  427.     dump("building OdirCallback object\n");
  428.  
  429.     var OdirCallback = new Object();
  430.  
  431.     OdirCallback.OnSearchDirectoryComplete = function (count, retOdirObjArr){
  432.         for(i=0;i<count;i++){
  433.             dump("ScreenName is:" +retOdirObjArr[i].ScreenName+"\n");    
  434.         
  435.         }
  436.     
  437.     }
  438.     OdirCallback.OnSearchDirectoryError = function(pErrMsg){
  439.         dump("OnSearchDirectoryByEntryGeneralError\n");
  440.     }
  441.     
  442.     testArray=["cars","Books and Writing"]
  443.     //actual call
  444.     pIOdirManager.SearchDirectoryByKeywords(OdirCallback,2, testArray)
  445.  
  446.  
  447. }
  448.  
  449.  
  450.  
  451.  
  452.  
  453. /* dom utility functions */
  454.  
  455. /* makeElementFromString
  456. *    inputs fragArray - array of strings, first item is the tagname
  457. *    the rest are properties
  458. *
  459. *    returns a dom element
  460. */
  461.  
  462. function makeElementFromString(fragArray){
  463.     tempEle=document.createElement(fragArray[0])
  464.     for(i=1;i<tempEle.length;i++){
  465.         tempEle.setAttribute(fragArray[i],"")
  466.     }
  467.     return tempEle
  468. }
  469.  
  470. /* setManyAttributes */
  471. /* inputs: 
  472. *    theElement - some DOM element
  473. *    attribArray - an array of strings of attribute names
  474. *    valueArray - an array of strings of the corresponding values
  475. */
  476.  
  477. function setManyAttributes(theElement,attribArray,valueArray){
  478.     //alert(theElement.getAttribute("value"))
  479.     for(j=0; j < attribArray.length; j++){
  480.  
  481.         theElement.setAttribute(attribArray[j],valueArray[j]);
  482.  
  483.     }
  484.     
  485.     
  486. }
  487.  
  488.  
  489.  
  490.  
  491.  
  492.